package com.museum.guide.common.result;

import lombok.Getter;

/**
 * 返回结果状态码枚举
 */
@Getter
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "操作成功"),

    /**
     * 失败
     */
    ERROR(500, "操作失败"),

    /**
     * 未授权
     */
    UNAUTHORIZED(401, "未授权"),

    /**
     * 禁止访问
     */
    FORBIDDEN(403, "禁止访问"),

    /**
     * 资源不存在
     */
    NOT_FOUND(404, "资源不存在"),

    /**
     * 参数错误
     */
    PARAM_ERROR(400, "参数错误"),

    /**
     * 用户名已存在
     */
    USERNAME_EXIST(1001, "用户名已存在"),

    /**
     * 用户名或密码错误
     */
    USERNAME_PASSWORD_ERROR(1002, "用户名或密码错误"),

    /**
     * 账号已禁用
     */
    ACCOUNT_DISABLED(1003, "账号已禁用"),

    /**
     * 预约时间段已满
     */
    TIME_SLOT_FULL(2001, "预约时间段已满"),

    /**
     * 预约日期无效
     */
    INVALID_APPOINTMENT_DATE(2002, "预约日期无效");

    private final Integer code;

    private final String message;

    ResultCode(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}